<!DOCTYPE html>
<html>

	<head lang="en">
		<meta charset="UTF-8">
		<title>登录</title>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
		<meta name="format-detection" content="teleusername=no">
		<meta name="renderer" content="webkit">
		<meta http-equiv="Cache-Control" content="no-siteapp" />

		<link rel="stylesheet" href="../AmazeUI-2.4.2/assets/css/amazeui.css" />
		<link href="../css/dlstyle.css" rel="stylesheet" type="text/css">
    <script src="js/plugins/vue/dist/vue.js"></script>
    <script src="js/plugins/axios/dist/axios.js"></script>
    <script src="js/common.js"></script>
	</head>

	<body>

		<div class="login-boxtitle">
			<a href="home.html"><img alt="logo" src="../images/logobig.png" /></a>
		</div>

		<div class="login-banner">
			<div class="login-main">
				<div class="login-banner-bg"><span></span><img src="../images/big.jpg" /></div>
				<div class="login-box">

							<h3 class="title">登录商城</h3>

							<div class="clear"></div>

						<div class="login-form">
						  <form>
							   <div class="user-name">
								    <label for="user"><i class="am-icon-user"></i></label>
								    <input type="text" v-model="userForm.username" name="" id="user" placeholder="邮箱/手机/用户名">
                 </div>
                 <div class="user-pass">
								    <label for="password"><i class="am-icon-lock"></i></label>
								    <input type="password" v-model="userForm.password" name="" id="password" placeholder="请输入密码">
                 </div>
                <div class="user-username">
                  <label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
                  <input type="text" v-model="userForm.imageCodeValue" name="" style="width: 180px;" id="imageCode" placeholder="请输入图片验证码">
                  <img id="captcha-image-temp" @click="getImageCode":src="imageCode"  class="captcha-image-temp"  alt="点击换图" title="点击换图" style="vertical-align: middle; cursor: pointer;">
                </div>
                <div class="verification">
                  <label for="code"><i class="am-icon-code-fork"></i></label>
                  <input type="tel" v-model="userForm.smsCode" name="" id="code" style="width: 150px;" placeholder="请输入验证码">
                  <button type="button" class="btn" @click=" sendMobileCode">获取</button>
                </div>
              </form>
           </div>

            <div class="login-links">
                <label for="remember-me"><input id="remember-me" type="checkbox">记住密码</label>
								<a href="#" class="am-fr">忘记密码</a>
								<a href="register.html" class="zcnext am-fr am-btn-default">注册</a>
								<br />
            </div>
								<div class="am-cf">
									<input type="submit" name="" value="登 录" @click="login" class="am-btn am-btn-primary am-btn-sm">
								</div>
						<div class="partner">
								<h3>合作账号</h3>
							<div class="am-btn-group">
								<li><a href="#"><i class="am-icon-qq am-icon-sm"></i><span>QQ登录</span></a></li>
								<li><a href="#"><i class="am-icon-weibo am-icon-sm"></i><span>微博登录</span> </a></li>
								<li><a href="https://open.weixin.qq.com/connect/qrconnect?appid=wxd853562a0548a7d0&redirect_uri=http://bugtracker.itsource.cn/callback.html&response_type=code&scope=snsapi_login&state=9527#wechat_redirect"><i class="am-icon-weixin am-icon-sm"></i><span>微信登录</span> </a></li>
							</div>
						</div>

				</div>
			</div>
		</div>


					<div class="footer ">
						<div class="footer-hd ">
							<p>
								<a href="# ">恒望科技</a>
								<b>|</b>
								<a href="# ">商城首页</a>
								<b>|</b>
								<a href="# ">支付宝</a>
								<b>|</b>
								<a href="# ">物流</a>
							</p>
						</div>
						<div class="footer-bd ">
							<p>
								<a href="# ">关于恒望</a>
								<a href="# ">合作伙伴</a>
								<a href="# ">联系我们</a>
								<a href="# ">网站地图</a>
								<em>© 2015-2025 Hengwang.com 版权所有. 更多模板 <a href="http://www.cssmoban.com/" target="_blank" title="模板之家">模板之家</a> - Collect from <a href="http://www.cssmoban.com/" title="网页模板" target="_blank">网页模板</a></em>
							</p>
						</div>
					</div>
	</body>
    <script type="text/javascript">
      new Vue({
      el:".login-banner",
        data:{
        userForm:{
          username:"",
          password:"",
          type:"0",
          smsCode:'',
          // 图形验证码
          imageCodeValue:'',
          // uuid
          imageCodeKey:'',
          // 短信验证码
          smsCode:'',

        },
          // 最终的图形验证码base64
          imageCode:"",
          // 前缀
          imageCodePrefix:"data:image/jpeg;base64,"

        },
        mounted(){
          this.getImageCode()
        },
        methods:{
          // 获取图形验证码
          getImageCode(){
            // 2.1.从localStorage中获取UUID
            let imageCodeKey = localStorage.getItem("registerImageCodeKey");
            // 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
            if(!imageCodeKey || imageCodeKey === ''){
              imageCodeKey = this.createUuid();
              localStorage.setItem("registerImageCodeKey",imageCodeKey);
            }
            // 2.3.发送Axios请求，传递UUID，得到图形验证码的Base64字符串
            this.$http.get("/verifyCode/image/"+imageCodeKey).then(res=>{
              // 2.3.1.将接口返回的图形验证码Base64字符串码+前缀赋值给模型中的imageCode字段
              this.imageCode = this.imageCodePrefix+res.data.resultObj;
            })
          },

          // 生成UUID的方法
          createUuid(){
            var s = [];
            var hexDigits = "0123456789abcdefghi";
            for (var i = 0; i < 36; i++) {
              s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
            }
            s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
            s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
            s[8] = s[13] = s[18] = s[23] = "-";

            var uuid = s.join("");
            return uuid;
          },
          // 获取手机验证码
          sendMobileCode(event){
            // 1.判断手机号不为空
            if(!this.userForm.username){
              alert("手机号不能为空");
              return;
            }
            // 2.判断图片验证码不为空
            if(!this.userForm.imageCodeValue){
              alert("图片验证码不能为空");
              return;
            }
            // 3.获取按钮，禁用按钮
            var sendBtn = $(event.target);
            sendBtn.attr("disabled",true);
            // 4.给图形验证码RedisKey赋值
            this.userForm.imageCodeKey = localStorage.getItem("registerImageCodeKey");
            //5.发送ajax请求
            this.$http.post("/verifyCode/smsCode",this.userForm).then(res=>{
              var ajaxResult = res.data;
              if(ajaxResult.success){
                alert("手机验证码已经发送到您的手机，请在3分钟内使用");
                //5.1.发送成：倒计时
                var time = 60;
                var interval = window.setInterval(function () {
                  //每一条倒计时减一
                  time = time - 1 ;
                  //把倒计时时间搞到按钮上
                  sendBtn.html(time+"秒后重发");
                  //5.2.倒计时完成恢复按钮
                  if(time <= 0){
                    sendBtn.html("重新发送");
                    sendBtn.attr("disabled",false);
                    //清除定时器
                    window.clearInterval(interval);
                  }
                },1000);
              }else{
                //5.3.发送失败：提示，恢复按钮
                sendBtn.attr("disabled",false);
                alert("发送失败:"+ajaxResult.msg);
              }
            })
          },
          login() {
            // 1.发起Axios请求，进行登录
            this.$http.post("/login/account", this.userForm)
              .then((result) => {
                result = result.data;
                // 1.1.登录成功
                if (result.success) {
                  // 登录成功提示
                  alert(result.meg);
                  // 登录成功需要将用户信息放入到localStorage
                  let {token, logininfo} = result.resultObj;
                  localStorage.setItem("token", token);
                  // 需要转换成JSON字符串进行存储，因为localStorage不能存储对象
                  localStorage.setItem("logininfo", JSON.stringify(logininfo));
                  // 跳转到前台首页
                  location.href = "index.html";
                } else {
                  // 1.2.登录失败提示用户
                  alert(result.msg);
                }
              })
              .catch(result => {
                // axios请求异常提示用户
                alert("系统异常，请稍后重试！");
              });
          }
        }
    })

    </script>

</html>
